#!/usr/bin/python
# -*- coding:utf-8 -*-

from ConfigParser import RawConfigParser

class Config:
	"""
	Objeto de configuración
	=======================

	Las instancias de esta clase con encargadas de recuperar y porporcionar
	los parámetros de configuración del programa
	"""

	__estado = {}

	def __init__(self):

		self.__dict__ = self.__estado

	def configura(self, archivo):
		"""
		Lee el archivo de configuración dado, y recupera los datos contenidos
		en él.

		@param archivo: Ruta hacia el archivo de configuración
		@type archivo: Cadena de caracteres.
		"""

		self.__archconf = archivo

		if not self.__dict__.has_key('__conf'):

			self.__conf = RawConfigParser()
			self.__conf.read( self.__archconf )

			self.personas      = self.__conf.getint( 'Muestra', 'personas' )
			self.imagenes      = self.__conf.getint( 'Muestra', 'imagenes' )
			self.tambd         = self.personas * self.imagenes
			self.dirent = self.__conf.getint( 'Muestra', 'dirent' )
			self.imgent = self.__conf.getint( 'Muestra', 'imgent' )
			self.knn = self.__conf.getint( 'Muestra', 'knn' )


	def __str__(self):

		s = ''

		for k, v in self.__dict__.items():
			if k.find('_'):
				s += '%-15s %s\n' % (k, v)

		return s


def main():
	fconf = 'refac.conf'
	print 'Probando el archivo de configuración:', fconf

	conf = Config()
	conf.configura(fconf)
	print conf

if __name__ == '__main__':
	main()	

